Bundled event memories

ABSTRACT

A method for bundling event memories in a social networking system. The method includes identifying a first plurality of user-submitted content items posted to the social networking system that are related to an event involving a plurality of users. The social networking system aggregates the first plurality of user-submitted content items into a bundled event memory, and transmits the bundled event memory to at least some of a plurality of user devices to be presented to at least some of the plurality of users, wherein the plurality of users utilize the plurality of user devices to communicate with the social networking system.

FIELD

Embodiments of the invention relate to social networking; and morespecifically, to the bundling of event memories in a social networkingsystem.

BACKGROUND

In recent years, the amount of multimedia content posted online hasincreased dramatically. This increase has further accelerated with thewidespread adoption of mobile phones and tablet computers featuringintegrated, high-quality still and video cameras. Armed with theseportable devices, users are easily able to document and share any aspectof their lives at any moment from nearly any location.

However, this increase in availability of multimedia content has led toan overwhelming and often unorganized accumulation of these digitalremnants. This problem, in part, has been the result of the difficultyand significant time required of users to organize this multimediacontent by moving it into folder hierarchies and/or assigning tags andlabels to these digital files.

Further, with this abundance of digital multimedia content, it hasbecome difficult for users to locate and combine multimedia content fromone or more sources into an engaging and portable format allowing foreasy sharing with friends and family.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention may best be understood by referring to the followingdescription and accompanying drawings that are used to illustrateembodiments of the invention. In the drawings:

FIG. 1 is a network diagram of one embodiment of a system for providingpersonalized content to a user of a social networking system;

FIG. 2 is a diagram of one embodiment of a social networking system;

FIG. 3 is a flow diagram illustrating a process for bundling of eventmemories according to an embodiment of the invention;

FIG. 4 is a flow diagram illustrating the identification of a firstplurality of user-submitted content items of FIG. 3 according to anembodiment of the invention;

FIG. 5 illustrates user interface elements utilized for creating anddisplaying bundled event memories according to an embodiment of theinvention;

FIG. 6 illustrates a first timeline social network user page includinguser-submitted content items according to an embodiment of theinvention;

FIG. 7 illustrates a second timeline social network user page includinguser-submitted content items according to an embodiment of theinvention;

FIG. 8 illustrates a bundled event video including user-submittedcontent from the first and second timeline social network user pages ofFIG. 6 and FIG. 7 according to an embodiment of the invention; and

FIG. 9 illustrates, in block diagram form, an exemplary processingsystem to provide social competition functionalities.

DESCRIPTION OF EMBODIMENTS

In the following description, numerous specific details are set forth.However, it is understood that embodiments of the invention may bepracticed without these specific details. References in thespecification to “one embodiment,” “an embodiment,” “an exemplaryembodiment,” etc., indicate that the embodiment described may include aparticular feature, structure, or characteristic, but every embodimentmay not necessarily include the particular feature, structure, orcharacteristic. Moreover, such phrases are not necessarily referring tothe same embodiment. Further, when a particular feature, structure, orcharacteristic is described in connection with an embodiment, it issubmitted that it is within the knowledge of one skilled in the art toeffect such feature, structure, or characteristic in connection withother embodiments whether or not explicitly described.

Detailed below are embodiments of methods, systems, and apparatuses forthe bundling of event memories in a social networking system. Bundledevent memories, in certain of the following embodiments, may begenerated from user-submitted content posted to a social networkingsystem or to a third party website or application by one or more users.This user-submitted content may be automatically identified by thesocial networking system as pertaining to an event, or identified usinga set of identifiers provided by a user of the social networking system.The identified user-submitted content (such as but not limited to text,images, audio, and videos) may be aggregated into a multimedia object.In an embodiment, the multimedia object is a video, which may alsoinclude an audio soundtrack, but in other embodiments the multimediaobject can be any type of multimedia object, such as but not limited toan image, document, audio clip, or executable application. The bundledevent memory may then be posted to the social network or provided tousers of the social network. Events may be relatively short in time(such as a party or game) or longer in time (such as a baby's first yearof life or a season for a professional or college sports team).

FIG. 1 is a network diagram of one embodiment of a system 100 forproviding personalized content to a user of a social networking system130. The system 100 includes one or more user devices 110, one or morethird-party websites 120, the social networking system 130 and a network140. For purposes of illustration, the embodiment of the system 100shown by FIG. 1 includes a single third-party website 120 and a singleuser device 110. However, in other embodiments, the system 100 mayinclude more user devices 110 and/or more third-party websites 120. Incertain embodiments, the social networking system 130 is operated by thesocial network provider, whereas the third-party websites 120 areseparate from the social networking system 130 in that they may beoperated by different entities. In various embodiments, however, thesocial networking system 130 and the third-party websites 120 operate inconjunction to provide social networking services to users of the socialnetworking system 130. In this sense, the social networking system 130provides a platform, or backbone, which other systems, such asthird-party websites 120, may use to provide social networking servicesand functionalities to users across the Internet.

The user device 110 comprises one or more computing devices that canreceive input from a user and can transmit and receive data via thenetwork 140. For example, the user device 110 may be a desktop computer,a laptop computer, a smart phone, a personal digital assistant (PDA), orany other device including computing functionality and datacommunication capabilities. The user device 110 is configured tocommunicate with the third-party website 120 and the social networkingsystem 130 via the network 140, which may comprise any combination oflocal area networks (LANs) and/or wide area networks (WANs), using bothwired and wireless communication systems.

In one embodiment, the user device 110 displays content from thethird-party website 120 or from the social networking system 130 byprocessing a markup language document 116 received from the third-partywebsite 120 or from the social networking system 130 using a browserapplication 112. The markup language document 116 identifies content andone or more instructions describing formatting or presentation of thecontent. By executing the instructions included in the markup languagedocument 116, the browser application 112 displays the identifiedcontent using the format or presentation described by the markuplanguage document 116. For example, the markup language document 116includes instructions for generating and displaying a web page havingmultiple frames that include text and/or image data retrieved from thethird-party website 120 and/or the social networking system 130. Invarious embodiments, the markup language document 116 comprises a datafile including extensible markup language (XML) data, extensiblehypertext markup language (XHTML) data or other markup language data.

In one embodiment where the user device 110 is a mobile device such as asmart phone or tablet, the user device 110 also includes one or moremobile applications 118 that execute on the user device 110. The mobileapplication 118 may execute as an independent stand-alone application ormay utilize the network 140 to exchange data between the user device110, the social networking system 130 and/or the third-party website120.

The third-party website 120 comprises one or more web servers includingone or more web pages 122, which are communicated to the user device 110using the network 140. The third-party website 120 is separate from thesocial networking system 130. For example, the third-party website 120is associated with a first domain while the social networking website isassociated with a separate social networking domain. A web page 122included in the third-party website 120 comprises a markup languagedocument identifying content and including instructions specifyingformatting or presentation of the identified content, as describedabove. The social networking system 130 comprises one or more computingdevices storing a social network, or mapping of a social graph,comprising a plurality of users and providing users of the socialnetwork with the ability to communicate and interact with other users ofthe social network. The social networking system 130 is furtherdescribed below in conjunction with FIG. 2. In use, users of the socialnetworking system 130 add connections to a number of other users of thesocial networking system 130 to whom they desire to be connected. Asused herein, the term “friend” or the term “a connection” refers to anyother user of the social networking system 130 to whom a user has formeda connection, association, or relationship via the social networkingsystem 130.

Connections may be added explicitly by a user or may be automaticallycreated by the social networking systems 130 based on commoncharacteristics of the users (e.g., users who are alumni of the sameeducational institution). For example, a first user specifically selectsa particular other user to be a friend. Connections in the socialnetworking system 130 are usually in both directions, but need not be,so the terms “user,” “friend” and “connection” depend on the frame ofreference. Connections between users of the social networking system 130are usually bilateral, or “mutual,” but connections may also beunilateral, or “one-way.” For example, if Bob and Joe are both users ofthe social networking system 130 and are connected to each other, Boband Joe are each other's connections. If, on the other hand, Bob wishesto connect to Joe to view data communicated to the social networkingsystem by Joe but Joe does not wish to form a mutual connection, aunilateral connection may be established. The connection between usersmay be a direct connection; however, some embodiments of a socialnetworking system allow the connection to be indirect via one or morelevels of connections or degrees or separation.

In addition to establishing and maintaining connections between usersand allowing interactions between users, the social networking system130 provides users with the ability to take actions on various types ofitems supported by the social networking system 130. These items mayinclude groups or networks (where “networks” here refer not to physicalcommunication networks, but rather social networks of people, entities,and concepts) to which users of the social networking system may belong,events or calendar entries in which a user might be interested,computer-based applications that a user may use via the socialnetworking system 130, transactions that allow users to buy or sellitems via the service, and interactions with advertisements that a usermay perform on or off the social networking system. These are just a fewexamples of the items upon which a user may act on a social networkingsystem, and many others are possible. A user may interact with anythingthat is capable of being represented in the social networking system 130or in a third-party website 120, separate from the social networkingsystem 130, coupled to the social networking system 130 via a network140.

The social networking system 130 is also capable of connecting a varietyof entities. For example, the social networking system 130 enables usersto interact with each other as well as third-party websites 120 or otherentities through an API or other communication channels.

The social networking system 130 also includes user-submitted content,which enhances a user's interactions with the social networking system130. User-submitted content may include anything a user can add, upload,send, or “post,” to the social networking system 130. For example, auser communicates posts to the social networking system 130 from a userdevice 110. Posts may include data such as status updates or othertextual data, location information, photos, videos, links, music orother similar data, content and/or media. Content may also be added tothe social networking system 130 by a third-party through a“communication channel,” such as a newsfeed or stream. Content “items”represent single pieces of content that are represented as objects inthe social networking system 130. In this way, users of the socialnetworking system 130 are encouraged to communicate with each other byposting text and content items of various types of media through variouscommunication channels, increasing the interaction of users with eachother and increasing the frequency with which users interact within thesocial networking system 130.

FIG. 2 is a diagram of one embodiment of a social networking system 130.The embodiment of a social networking website 130 shown by FIG. 2includes a web server 210, an action logger 215, an API request server220, an action log 230, a user profile store 240, a connection store245, and an event memory bundling module 250. The event memory bundlingmodule 250 includes an event content identification module 252, anaggregation module 252, and a bundled event memory transmission module252. In other embodiments, the social networking website 130 may includeadditional, fewer, or different modules for various applications.Conventional components such as network interfaces, security mechanisms,load balancers, failover servers, management and network operationsconsoles, and the like are not shown so as to not obscure the details ofthe system.

As described above in conjunction with FIG. 1, the social networkingsystem 130 comprises a computing system that allows users to communicateor otherwise interact with each other and access content as describedherein. The social networking system 130 stores user profiles describingthe users of a social network. The user profiles include biographic,demographic, and other types of descriptive information, such as workexperience, educational history, hobbies or preferences, interests,location, and the like. The social networking system 130 further storesdata describing one or more connections between different users in theconnection store 245. The connection information may indicate users whohave similar or common work experience, group memberships, hobbies,educational history, or are in any way related or share commonattributes. Additionally, the social networking system 130 includesuser-defined connections between different users, allowing users tospecify their relationships with other users. For example, user-definedconnections allow users to generate relationships with other users thatparallel the users' real-life relationships, such as friends,co-workers, partners, and so forth. Users may select from predefinedtypes of connections, or define their own connection types as needed.

The web server 210 links the social networking system to one or moreuser device 110 and/or one or more third-party websites 130 via thenetwork 240. The web server 210 serves web pages, as well as otherweb-related content, such as Java, Flash, XML, and so forth. The webserver 210 may include a mail server or other messaging functionalityfor receiving and routing messages between the social networking system130 and one or more user devices 110. The messages can be instantmessages, queued messages (e.g., email), text and Short Message Service(SMS) messages, or any other suitable messaging format.

The Application Programming Interface (API) request server 220 allowsone or more third-party websites 120 and/or mobile applications 118 toaccess information from the social networking system 130 by calling oneor more APIs. The API request server 220 may also allow third-partywebsites 120 and/or mobile applications 118 to send information tosocial networking website by calling APIs. For example, a third-partywebsite 120 sends an API request to the social networking system 130 viathe network 140 and the API request server 220 receives the API request.The API request server 220 processes the request by calling an APIassociated with the API request to generate an appropriate response,which the API request server 220 communicates to the third-party website120 via the network 140. For example, responsive to an API request, theAPI request server 220 collects data associated with a user andcommunicates the collected data to the third-party website 120.

The action logger 215 is capable of receiving communications from theweb server 210 about user actions on and/or off the social networkingsystem 130. The action logger 215 populates the action log 230 withinformation about user actions, allowing the social networking system130 to track various actions taken by its users within the socialnetworking system 130 and outside of the social networking system 130.Any action that a particular user takes with respect to another user isassociated with each user's profile, through information maintained inthe action log 230 or in a similar database or other data repository.Examples of actions taken by a user within the social network 130 thatare identified and stored may include, for example, adding a connectionto another user, sending a message to another user, reading a messagefrom another user, viewing content associated with another user,attending an event posted by another user or other actions interactingwith another user. When a user takes an action within the socialnetworking system 130, the action is recorded in an action log 240. Inone embodiment, the social networking system maintains the action log230 as a database of entries. When an action is taken within the socialnetworking system 130, an entry for the action is added to the actionlog 230.

Additionally, user actions may be associated with an entity outside ofthe core social networking system 130, such as a third-party website 120that is separate from the social networking system website 130. Forexample, the action logger 215 receives data describing a user'sinteraction with a third party website 120 from the web server 210.Examples of actions where a user interacts with a third-party website120 includes a user expressing an interest in a third-party website 120or another entity, a user posting a comment to the social networkingsystem 130 that discusses a third-party website 120, or a web page 122within the third-party website 120, a user posting to the socialnetworking system 130 a Uniform Resource Locator (URL) or otheridentifier associated with a third-party website 120, a user attendingan event associated with a third-party website 120 or any other actionby a user that is related to a third-party website 120. Thus, the actionlog 240 may include actions describing interactions between a socialnetworking system user and a third-party website 120 that is separatefrom the social networking system 130.

The authorization server 235 enforces one or more privacy settings ofthe users of the social networking system 130. A privacy setting of auser determines how particular information associated with a user can beshared. The privacy setting comprises the specification of particularinformation associated with a user and the specification of the entityor entities with whom the information can be shared. Examples ofentities with which information can be shared may include other users,applications, mobile applications 118, third-party websites 120 or anyentity that can potentially access the information. The information thatcan be shared by a user comprises user profile information like profilephoto, phone numbers associated with the user, user's connections,actions taken by the user such as adding a connection, changing userprofile information and the like.

The authorization server 235 contains logic to determine if certaininformation associated with a user can be accessed by a user's friends,third-party websites 120 and/or other applications and entities. Forexample, a third-party website 120 that attempts to access a user'scomment about a URL associated with the third-party website 120 must getauthorization from the authorization server 235 to access the user'swork phone number. Based on the user's privacy settings, theauthorization server 235 determines if another user, a third-partywebsite 120, a mobile application 118 or another entity is allowed toaccess information associated with the user, including information aboutactions taken by the user. For example, the authorization server 235uses a user's privacy setting to determine if the user's comment about aURL associated with the third-party website 120 can be accessed by thethird-party website 120. This enables a user's privacy setting tospecify which other users, or other entities, are allowed to receivedata about the user's actions or other data associated with the user.

Additionally, the social networking system 130 maintains data aboutobjects with which a user may interact with using the social networkingsystem 130. To maintain this data, the user profile store 240 and theconnection store 245 store instances of the corresponding type ofobjects maintained by the social networking system 130. Each object typehas information fields that are suitable for storing informationappropriate to the type of object. For example, the user profile store240 contains data structures with fields suitable for describing auser's profile. When a new object of a particular type is created, thesocial networking system 130 initializes a new data structure of thecorresponding type, assigns a unique object identifier to it, and beginsto add data to the object as needed. This might occur, for example, whena user becomes a user of the social networking system 130, the socialnetworking system 130 generates a new instance of a user profile in theuser profile store 240, assigns a unique identifier to the user profile,and begins to populate the fields of the user profile with informationprovided by the user.

The connection store 245 includes data structures suitable fordescribing a user's connections to other users, connections tothird-party websites 120 or connections to other entities. Theconnection stores 245 may also associate a connection type with a user'sconnections, which may be used in conjunction with the user's privacysetting, further described above, to regulate access to informationabout the user.

Embodiments of the social networking system 130 include an event memorybundling module 250 to enable the creation of bundled event memoriesusing user-submitted content posted to the social networking system 130or to a third party website or application. According to embodiments ofthe invention, a user identifies an event that has occurred or isoccurring, identifies a set of users as event participants, andidentifies an event timeframe and an event location. The event can benearly anything that occurs in life, and in some embodiments the eventincludes a plurality of users of the social networking system 130 asparticipants and/or spectators (direct or indirect). For example, anevent could be a sporting event (such as a football game, basketballgame, hockey game, soccer game, baseball game, etc.) or a set ofsporting events (such as a tournament, the Olympics, the Super Bowl, theWorld Series, the playoffs in any sport, the World Cup, the NCAABasketball Tournament, etc.). Alternatively, the event could be a socialevent such as a wedding, group gathering, reunion, party/celebration,gathering at a restaurant or tavern, graduation, conference,presentation, debate, political protest or gathering, farmer's market,flash mob, heritage festival, etc. The event could be an artistic orarts-related event such as a musical performance, art gallery show,poetry or literature reading, festival, etc. The event may also be anatural event, such as a sunset, eclipse, thunderstorm, blizzard, etc.Accordingly, the type of event that can be utilized for bundling ofevent memories is nearly limitless.

Based upon this event information from the user, the event contentidentification module 252 of the event memory bundling module 250identifies user-submitted content posted to the social networking system130 regarding the event. The identified user-submitted content mayinclude photographs, text (e.g., comments, post messages), videos, audiorecordings, illustrations, animations, or any other multimedia oraudio-visual content submitted to the social networking system 130,referenced within content submitted to the social networking system 130,or submitted to a third party website or application. In an embodimentwhere the user-submitted content is submitted to a third party websiteor application, the event content identification module 252 retrievesthe user-submitted content from the third party website or applicationand stores the user-submitted content within the social networkingsystem 130. As noted above, an event may be relatively short in time orlonger in time. As an example of content referenced within othercontent, a user may post a message to a social networking system 130including a link or reference to another piece of content. Further, theidentified user-submitted content may have been posted by that user, byfriends or users connected to that user, or by other users of the socialnetworking system 130 that posted content identified as relating to theevent. The user-submitted content may be generated by that submittinguser (e.g., a photograph taken by that user, text written by that user),generated by another user (e.g., a post message of a second user that isrepublished by that user), or generated by another source (e.g., aquotation taken from a book or website of another, a photograph taken byanother, etc.)

The event content identification module 252, in some embodiments, alsopresents the identified user-submitted content to the user to seek inputfrom the user that indicates which of the user-submitted content itemsare of interest to the user. In embodiments of the invention, thispresentation is causing the content to be displayed to the user as partof a webpage or causing the content to be displayed as part of astandalone application executing on a user device of the user. The eventcontent identification module 252, in these embodiments, receives anindication from the user device of the user that identifies which of theidentified user-submitted content items are to be used (or not to beused) when creating a bundled event memory. In some embodiments, contentis filtered prior to being provided to the user based upon one or moreof: geolocation information of the content from geotagging, post text,identified persons or entities in a picture, a date and/or time when thecontent was created, modified, or posted, a location (other than fromgeotagging), etc.

The event memory bundling module 250 also includes an aggregation module254 to take the identified user-submitted content items and aggregatethem into a bundled event memory according to user privacy preferences.In an embodiment of the invention, the bundled event memory is a movie(or slideshow), and in some embodiments the movie includes one or moremusic or audio pieces that play along with images and text. In someembodiments, all audio or visual items within the movie are from theuser-submitted content; in other embodiments, one or more of the audioor visual items used in the movie are not from the user-submittedcontent, and may or may not be selected by the user. For example, themovie may include an audio soundtrack that is not from theuser-submitted content and is instead selected by the user. Inembodiments of the invention, the movie is encoded using theH.264/MPEG-4 Part 10 video compression standard, the VC-1/SMPTE 421Mstandard, the On2 TrueMotion VP6 codec, VP8 format, Theora format, WebMformat, or other format. The movie may be presented as an Adobe Flashvideo, a Flash Video, an Ogg video, an HTML5 video, or any othercommonly used container format known to those of ordinary skill in theart.

Having aggregated the identified user-submitted content to create abundled event memory with the aggregation module 254, the bundled eventmemory transmission module 256 transmits the bundled event memory to oneor more user devices of the social networking system 130 for display tothe corresponding one or more users. In embodiments of the invention,the bundled event memory is transmitted and displayed to just the user,in other embodiments, the bundled event memory is transmitted anddisplayed to the user and one or more of the user's friends.Alternatively, the bundled event memory is transmitted to one or more ofthe user, the user's friends, users that posted any of theuser-submitted content aggregated within the bundled event memory, orusers that indicated an interest or affiliation with the event.

In addition to creating a bundled event memory based upon eventinformation provided by a user, the event content identification module252 is also able to automatically detect potential events based upon ananalysis of posted user-submitted content. In particular, in someembodiments, the event content identification module 252 is configuredto detect patterns of activity within the user-submitted content. Forexample, a pattern may include a plurality of posts by one or more usersreferencing those one or users within a period of time, or a pluralityof posts from a plurality of users including a similar set of words thatare identified as relating to a particular event. The event contentidentification module 252 may be configured to utilize a number ofwell-known machine learning techniques to identify such clusters ofposts that may indicate an event or whether a post relates to an event.

In performing these and other tasks, the event content identificationmodule 252 may utilize a wide variety of information from theuser-submitted content ranging from timestamps from photographs,detected user and object identities from within user-submittedphotographs/videos/audio recordings, geolocation information from theposts and objects submitted within posts, metadata from user-submittedcontent items (e.g. Exchangeable Image File Format (EXIF) metadata,Extensible Metadata Platform (XMP) metadata, International PressTelecommunications Council (IPTC) metadata, etc.), user “check-ins” at aparticular location, keywords or codes within a post message thatidentify another object/topic/user (e.g., a hashtag metadata tag),objects/topics/users that are “tagged” by users within user-submittedcontent. However, the use of this information and user-submitted contentis subject to the privacy policy of the social networking system 130 andalso any individual privacy policy implemented by a user of the socialnetworking system 130. For example, if a user of a particular socialnetworking system 130 has set a privacy setting indicating that some orall of their user-submitted content is not to be used in one or more ofthese ways, the social networking system 130 should abide.

FIG. 3 is a flow diagram illustrating a high-level process for thebundling of event memories 300 according to an embodiment of theinvention. The operations of this and other flow diagrams will bedescribed with reference to the exemplary embodiments of the otherdiagrams. However, it should be understood that the operations of theflow diagrams can be performed by embodiments of the invention otherthan those discussed with reference to these other diagrams, and theembodiments of the invention discussed with reference these otherdiagrams can perform operations different than those discussed withreference to the flow diagrams.

At 302, the event memory bundling module 250, via the event contentidentification module 252, identifies a first plurality ofuser-submitted content items posted to the social networking system thatare related to an event that occurred involving one or more users of thesocial networking system. Several possible ways to perform thisidentification are discussed later herein with respect to FIG. 4.

Next, at 304 the event memory bundling module 250, via the aggregationmodule 254, aggregates the first plurality of user-submitted contentitems into a bundled event memory. This bundled event memory is a set ofone or more files capable of being presented to users on user devices.Then, at 306 the event memory bundling module 250, via the bundled evenmemory transmission module 256, transmits the bundled event memory to atleast some of a plurality of user devices to be presented to at leastsome of the plurality of users, wherein the plurality of users utilizethe plurality of user devices to communicate with the social networkingsystem.

FIG. 4 is a flow diagram illustrating the identification of a firstplurality of user-submitted content items 302 of FIG. 3 according to anembodiment of the invention. A first approach (illustrated by circle ‘1a’) and second approach (illustrated by circle ‘1 b’) begin with theevent content identification module 252 receiving an event timeframefrom the first device utilized by the first user 402. This timeframe maybe a single date or single time that is an approximate time of theevent. Alternatively, the timeframe may be a range of dates or times, orboth an approximate starting time and an approximate ending time.

In certain embodiments following the first approach (circle ‘1 a’), theevent content identification module 252 receives a set of useridentifiers for users of the social networking system 130 involved inthe event 404. In an embodiment, the set of user identifiers is receivedfrom the first device of the first user. In this context, “involved inthe event” means that the users either participated in the event,attended the event, observed the event, or discussed the event.

With the set of user identifiers, the event content identificationmodule 252 generates a plurality of candidate content items based uponuser-submitted content items posted by the first user and the set ofusers at or during the received timeframe 406. In an embodiment, eventcontent identification module 252 gathers all content posted to thesocial networking system 130 by each of the users during the timeframeto generate the plurality of candidate content items according to theirprivacy preference. In some embodiments, this gathering is furtherrefined by only gathering content posted by the set of users during thetimeframe that is in some way determined to likely be associated withthe event. As one example, if a piece of content posted by one of theset of users during the timeframe was geo-tagged as having beenoriginated from a same location as the event, this content may bedetermined to be likely associated with the event, whereas a piece ofcontent posted by another of the set of the users during the timeframemay be determined as not being associated with the event if it wasgeo-tagged with a location far away from the location of the event. Inaddition to the use of geo-tagged locations, the event contentidentification module 252 may utilize many other pieces of informationfrom or about content submitted to the social networking system 130 whendetermining if the content is likely associated with the event, such asmetadata of the content, particular words utilized within text of apost, or the identities of users or other entities identified orreferenced within the content.

This plurality of candidate content items is displayed to the first user408, who will indicate which of the plurality of candidate content itemsshould or should not be included within the bundled event memory.Accordingly, the event content identification module 252 receives anindication from the user device of which of the candidate content itemshave been selected as the first plurality of user-submitted contentitems 410.

In other embodiments, the event content identification module 252 may beconfigured to follow circle ‘1 b’ after receiving the event timeframefrom the first device of the first user 402. At 412, the event contentidentification module 252 identifies a second plurality ofuser-submitted content items that were posted by the first user duringthe received timeframe 412. In some embodiments, the second plurality ofuser-submitted content items include all content items posted to thesocial networking system 130 by the first user during the receivedtimeframe, but in other embodiments the second plurality ofuser-submitted content items includes a subset of all of that postedcontent, depending upon how likely a particular content item is relatedto the event, as determined by the event content identification module252.

At 414, the event content identification module 252 identifies aplurality of users based upon the identified second plurality ofuser-submitted content items. In embodiments of the invention, the eventcontent identification module 252 examines the second plurality ofuser-submitted content items to identify one or more of: users that weretagged within a picture/video/message, users that commented on a post,users that “liked” a post, users that republished a post, or users thatwere determined to be in a picture or video by identification softwareor hardware.

With the plurality of identified users, the event content identificationmodule 252 identifies a third plurality of user-submitted content itemsposted by the plurality of users during the timeframe 416. Similar tothe identification of the second plurality of user-submitted contentitems 412, in some embodiments, the third plurality of user-submittedcontent items include all content items posted to the social networkingsystem 130 by the set of users during the timeframe, but in otherembodiments the third plurality of user-submitted content items includesa subset of all of that posted content, depending upon how likely aparticular content item is related to the event, as determined by theevent content identification module 252.

At 418, the event content identification module 252 generates theplurality of candidate content items from the second and thirdpluralities of user-submitted content items 418. The generated pluralityof candidate content items may include all of the user-submitted contentitems from the second and third pluralities of user-submitted contentitems, or it may contain a subset of each of the second and thirdpluralities of user-submitted content items, or it may contain only somecontent items from the second plurality or only some content items fromthe third plurality. At this point, the path indicated by circle ‘1 b’merges with the path of circle ‘1 a’, so the event contentidentification module 252 similarly displays the candidate content itemsto the first user 408 and receives an indication from the user device ofthe first user of which of the candidate content items are the firstplurality of user-submitted content items to be included in the bundledevent memory 410.

Another embodiment for identifying the first plurality of user-submittedcontent items 302 is illustrated by circle ‘2’ and includes identifyinga second plurality of user-submitted content items posted by the firstuser during some timeframe 420. In an embodiment, this timeframe is notan input to the event content identification module 252, but is anoutput after the event content identification module 252 has detected aset of one or more user-submitted content items posted by a first userwithin a particular time frame that appear to relate to a particularevent. As described above, the event content identification module 252may be configured to utilize many different methods to detect posts thatare similarly referencing a common event. As one example, the eventcontent identification module 252 may identify such a second pluralityof user-submitted content items if a user posts a particular number ofposts within a particular amount of time that include/reference to aparticular number of common people at a particular location or set oflocations. For example, if a user posts 15 different pictures over thespan of three hours from Lambeau Field (a football stadium in Green Bay,Wis.) that all include pictures of his/her friends at a “Packers” v.“Bears” game, the event content identification module 252 may detectthat these posts all pertain to a common event—a football game where thePackers team beat the Bears team. With this identified second pluralityof user-submitted content items posted the first user, the process ofcircle ‘2’ merges with the process of circle ‘1 b’ at 414, where aplurality of users are identified based upon the second plurality ofuser-submitted content items. Subsequently, the process continues withblocks 416, 418, 408, and 410.

Another embodiment depicted by circle ‘3’ includes receiving an eventindicator from a first user device of a first user 422. In anembodiment, the event indicator is a word or string of text (such as ahashtag) that will occur in user-submitted content items that relate toa particular event. In other embodiments, the event indicator is aparticular combination of users that, when found together inuser-submitted content items, indicate that these content items pertainto a common event. In other embodiments, the event indicator may be aportion of text, a “check-in” location, or any other expression that canbe used to test a content item and yield a “yes” or “no” based upon theproperties of that content item.

With the received event indicator, the event content identificationmodule 252 generates a plurality of candidate content items byidentifying user-submitted content items posted by a plurality of usersthat satisfy the event indicator 424. In some embodiments, the pluralityof users includes the first user and one or more of the “friends” of thefirst user. In other embodiments, the plurality of users includes one ormore users of the social networking system 130 that are not “friends”with the first user. This process of circle ‘3’ then displays thecandidate content items to the first user 408, and receives anindication from the user device of the first user of which of thecandidate content items are the first plurality of user-submittedcontent items to be included in the bundled event memory 410.

FIG. 5 illustrates user interface elements utilized for creating anddisplaying bundled event memories according to an embodiment of theinvention. In some embodiments, these user interface elements aredisplayed as a portion of a web page served by web server 210, and insome embodiments these interface elements are displayed as a portion ofa standalone application such as mobile application 118.

The bundled event display module 500A is a user interface element thatallows a user to view any of a set of previously created bundledmemories or create a new bundled event memory. The first three elementsof the bundled event display module 500A are bundled event selectors502A-502C. Each bundled event selector (e.g. 502A) contains a thumbnailof a bundled event memory, a bundled event name (e.g. “30th BirthdayBlast”), and a bundled event timeframe (e.g. “Oct. 23, 2012”). Upon auser selecting one of the bundled event selectors 502A-502C, theassociated bundled event memory is displayed to the user. The bundledevent display module 500A also includes a bundled event creation inputbutton 504, which upon user selection, allows the user to create a newbundled event memory. In one embodiment, when a user selects the bundledevent creation input button 504, the bundled event creation module 500Bis displayed.

The bundled event creation module 500B includes a number of input fieldsallowing a user to utilize the event memory bundling module 250 tocreate a bundled event memory. The bundled event creation module 500Bincludes a bundled event name 506 input, which allows a user to providea description of the event. The bundled event creation module 500B alsoincludes a bundled event participants field 508, which allows a user toenter some users of the social networking system 130 that were involvedin the event, and further includes a bundled event location 510 to allowthe user to input a geographic location of the event. As depicted, thebundled event timeframe 512 allows the user to input a range of datesfor the event, but in other embodiments the bundled event timeframeallows the user to enter one date, several dates (consecutive ornon-consecutive), a date range, several date ranges (consecutive ornon-consecutive), one time, a time range, or several time ranges.Finally, the bundled event creation module 500B includes a createbundled event input button 514 allowing the user to submit the requestto create a bundled event memory. In an embodiment of the invention,upon a user filling out these inputs, the event memory bundling module250 performs at least some of the steps of FIG. 3 and FIG. 4 to createthe bundled event memory, which might require further input from theuser via other user interface elements that are not displayed herein.

Upon creation of a bundled event memory, the bundled event post 520 (orsimilar) user interface may be posted to a page associated with the user(such as a timeline of a social network user page as illustrated in FIG.6 or FIG. 7), pages associated with the entered bundled eventparticipants 508, or pages associated with a plurality of users of thesocial networking system 130. The bundled event post 520 includes abundled event memory 522, along with the bundled event name 506, thebundled event participants 508, and the bundled event location 510. Inembodiments of the invention, the user can select and play the bundledevent memory 522 within the bundled event post 520 user interfaceelement; in other embodiments, the user may select the bundled eventmemory 522 video in the bundled event post 520 user interface yet playthe bundled event memory 522 video in a separate interface or using aseparate standalone media player application (such as VLC by VideoLAN,iTunes by Apple Inc., RealPlayer by Real Networks, or Windows MediaPlayer by Microsoft). In some embodiments, the bundled event memory 522is directly downloadable by the user.

FIG. 6 illustrates a first timeline social network user page 600including user-submitted content items according to an embodiment of theinvention, and FIG. 7 illustrates a second timeline social network userpage 700 including user-submitted content items according to anembodiment of the invention. In embodiments of the invention whereuser-submitted content items are gathered from a plurality of users, thetimelines of social network user pages (600, 700) of FIG. 6 and FIG. 7are helpful for understanding aspects of the invention. Each of thesetimelines of social network user pages (600, 700) includes a pluralityof user-submitted posts including user-submitted content items.

The first timeline of a social network user page 600, for a user named“Alan Gamer”, includes a user-submitted post 612 comprising a postmessage 614 of text, a post image 616, an indication of post “likes” 618(i.e. an indication of other users of the social networking system 130that approve of the user-submitted post 612), and at least one postcomment 620 of text. The page also includes two other user-submittedposts (612, 628) that include post messages and post images (e.g. 629).Further, this page also includes a user-submitted “check-in” post 622,which similarly includes a post message 614 of text, an indication ofpost “likes”, and at least one post comment, but further includes a mapand description of the geographic location where the user created theuser-submitted “check-in” post 622 from. The page also includes auser-submitted post 624 that is essentially just a post message 625, anddoes not include a post image or “check-in” location.

Turning to FIG. 7, the second timeline of a social network user page700, which is for a user named “Keenan Pridmore”, includes auser-submitted post 724 with a post message, a user-submitted post 724with a post message and post image 725. The second timeline socialnetwork user page 700 also includes a user-submitted post 724 includinga post message 726, a post video 726, an indication of post “likes” 730,and at least one post comment 730 of text.

FIG. 8 illustrates a bundled event video including user-submittedcontent from the first and second timeline social network user pages ofFIG. 6 and FIG. 7 (or, “first user page” and “second user page”)according to an embodiment of the invention. The bundled event memory522 (earlier depicted with respect to FIG. 5) on the left side of FIG. 8is expanded on the right side of FIG. 8 to illustrate the concept ofbundled event memories. This bundled event memory, which is a video,includes at least five user-submitted content items of three differentcontent types (i.e. image, text, video) from two users. The bundledevent memory 522 includes three different content items of type “image”:a post image 725 from the second user page 700, a post image 629 fromthe first user page 600, and a post image 616 from the first user page600. Second, the bundled event memory 522 includes one user-submittedcontent item of type “text”: the post message 625 from the first userpage 600. Third, the bundled event memory 522 includes oneuser-submitted content item of type “video”: the post video 726 of thesecond user page 700. In embodiments of the invention, the bundled evenmemory (e.g. 522) may include more or few content types, more or feweruser-submitted content items, and/or more or fewer users from which thecontent items are selected.

Additionally, the bundled event memory 522 may optionally include abundled event memory soundtrack 802, which is an audio track that isplayed along with the visual aspect of the bundled event memory 522. Asdescribed earlier herein, the bundled event memory soundtrack 802 may beone or more audio recordings that are user-submitted content items.Alternatively, the bundled event memory soundtrack 802 may be comprisedpartially or completely of other audio that is not user-submittedcontent. In an embodiment of the invention, the bundled event memorysoundtrack 802 is audio that is selected by the user generating thebundled event memory.

FIG. 9 illustrates, in block diagram form, an exemplary processingsystem 900 to provide social competition functionalities. Dataprocessing system 900 includes one or more microprocessors 905 andconnected system components (e.g., multiple connected chips).Alternatively, the data processing system 900 is a system on a chip.

The data processing system 900 includes memory 910, which is coupled tothe microprocessor(s) 905. The memory 910 may be used for storing data,metadata, and programs for execution by the microprocessor(s) 905. Thememory 910 may include one or more of volatile and non-volatilememories, such as Random Access Memory (“RAM”), Read Only Memory(“ROM”), a solid state disk (“SSD”), Flash, Phase Change Memory (“PCM”),or other types of data storage. The memory 910 may be internal ordistributed memory.

The data processing system 900 also includes an audio input/outputsubsystem 915 which may include a microphone and/or a speaker for, forexample, playing back music or other audio, receiving voice instructionsto be executed by the microprocessor(s) 905, playing audionotifications, etc.

A display controller and display device 920 provides a visual userinterface for the user, e.g., GUI windows illustrated in FIGS. 5-8.

The data processing system 900 also includes one or more input or output(“I/O”) devices and interfaces 925, which are provided to allow a userto provide input to, receive output from, and otherwise transfer data toand from the system. These I/O devices 925 may include a mouse, keypador a keyboard, a touch panel or a multi-touch input panel, camera,optical scanner, network interface, modem, other known I/O devices or acombination of such I/O devices. The touch input panel may be a singletouch input panel which is activated with a stylus or a finger or amulti-touch input panel which is activated by one finger or a stylus ormultiple fingers, and the panel is capable of distinguishing between oneor two or three or more touches and is capable of providing inputsderived from those touches to the processing system 900.

The I/O devices and interfaces 925 may also include a connector for adock or a connector for a USB interface, FireWire, Thunderbolt,Ethernet, etc. to connect the system 900 with another device, externalcomponent, or a network. Exemplary I/O devices and interfaces 925 alsoinclude wireless transceivers, such as an IEEE 802.11 transceiver, aninfrared transceiver, a Bluetooth transceiver, a wireless cellulartelephony transceiver (e.g., 2G, 3G, 4G), or another wireless protocolto connect the data processing system 900 with another device, externalcomponent, or a network and receive stored instructions, data, tokens,etc.

It will be appreciated that one or more buses may be used tointerconnect the various components shown in FIG. 9.

The data processing system 900 is an exemplary representation of a userdevice 110, but any of these features may also be utilized by devicesimplementing the social networking system 130. The data processingsystem 900 may be a personal computer, tablet-style device, a personaldigital assistant (PDA), a cellular telephone with PDA-likefunctionality, a Wi-Fi based telephone, a handheld computer whichincludes a cellular telephone, a media player, an entertainment system,or devices which combine aspects or functions of these devices, such asa media player combined with a PDA and a cellular telephone in onedevice. In other embodiments, the data processing system 900 may be anetwork computer, server, or an embedded processing device withinanother device or consumer electronic product. As used herein, the termscomputer, system, device, processing device, and “apparatus comprising aprocessing device” may be used interchangeably with the data processingsystem 900 and include the above-listed exemplary embodiments.

It will be appreciated that additional components, not shown, may alsobe part of the system 900, and, in certain embodiments, fewer componentsthan that shown in FIG. 9 may also be used in a data processing system900. It will be apparent from this description that aspects of theinventions may be embodied, at least in part, in software. That is, thecomputer-implemented methods may be carried out in a computer system orother data processing system in response to its processor or processingsystem executing sequences of instructions contained in a memory, suchas memory 910 or other non-transitory machine-readable storage medium.The software may further be transmitted or received over a network (notshown) via a network interface device 925. In various embodiments,hardwired circuitry may be used in combination with the softwareinstructions to implement the present embodiments. Thus, the techniquesare not limited to any specific combination of hardware circuitry andsoftware, or to any particular source for the instructions executed bythe data processing system 900.

An article of manufacture may be used to store program code providing atleast some of the functionality of the embodiments described above.Additionally, an article of manufacture may be used to store programcode created using at least some of the functionality of the embodimentsdescribed above. An article of manufacture that stores program code maybe embodied as, but is not limited to, one or more memories (e.g., oneor more flash memories, random access memories—static, dynamic, orother), optical disks, CD-ROMs, DVD-ROMs, EPROMs, EEPROMs, magnetic oroptical cards or other type of non-transitory machine-readable mediasuitable for storing electronic instructions. Additionally, embodimentsof the invention may be implemented in, but not limited to, hardware orfirmware utilizing a Field-Programmable Gate Array (FPGA),Application-Specific Integrated Circuit (ASIC), a processor, a computer,or a computer system including a network. Modules and components ofhardware or software implementations can be divided or combined withoutsignificantly altering embodiments of the invention.

In the foregoing specification, the invention has been described withreference to specific exemplary embodiments thereof. Various embodimentsand aspects of the invention(s) are described with reference to detailsdiscussed herein, and the accompanying drawings illustrate the variousembodiments. The description above and drawings are illustrative of theinvention and are not to be construed as limiting the invention.Numerous specific details are described to provide a thoroughunderstanding of various embodiments of the present invention. However,in certain instances, well-known or conventional details are notdescribed in order to provide a concise discussion of embodiments of thepresent inventions.

It will be evident that various modifications may be made theretowithout departing from the broader spirit and scope of the invention asset forth in the following claims. For example, the methods describedherein may be performed with fewer or more features/blocks or thefeatures/blocks may be performed in differing orders. Additionally, themethods described herein may be repeated or performed in parallel withone another or in parallel with different instances of the same orsimilar methods.

What is claimed is:
 1. A method comprising: receiving, from a first userdevice associated with a first user, a plurality of user identifiers fora plurality of users of a social networking system; identifying a firstplurality of user-submitted content items available to the socialnetworking system that are related to an event involving at least oneuser of the plurality of users, wherein the identifying of the firstplurality of user-submitted content items includes: using the pluralityof user identifiers to identify a second plurality of user-submittedcontent items posted to the social networking system by the plurality ofusers within a time range, analyzing the second plurality ofuser-submitted content items including metadata, content, and usersidentified within the content of each of the second plurality ofuser-submitted content items, generating a plurality of candidatecontent items, wherein the plurality of candidate content items is asubset of the second plurality of user-submitted content items,presenting to the first user device, the plurality of candidate contentitems wherein the plurality of candidate content items are displayed tothe first user, receiving, from the first user device, a messageindicating which of the plurality of candidate content items are to beincluded in the first plurality of user-submitted content items, andselecting two or more of the plurality of candidate content items as thefirst plurality of user-submitted content items based upon the messagereceived from the first user device; aggregating the first plurality ofuser-submitted content items into a bundled event memory, wherein thebundled event memory is a set of one or more files capable of beingpresented to users on user devices; and transmitting the bundled eventmemory to at least one of a plurality of user devices to be presented toat least some of the plurality of users, wherein the plurality of usersuse the plurality of user devices to communicate with the socialnetworking system.
 2. The method of claim 1, wherein the identifying ofthe first plurality of user-submitted content items comprises: receivinga first time value and a second time value from the first user device,wherein the first time value indicates a beginning time of the event,and wherein the second time value indicates an ending time of the event.3. The method of claim 2, wherein the time range indicates a period oftime between the first time value and the second time value.
 4. Themethod of claim 1, wherein receiving the plurality of user identifierscomprises: identifying a third plurality of user-submitted content itemsposted to the social networking system during the time range; andidentifying the plurality of users based upon the first plurality ofuser-submitted content items.
 5. The method of claim 4, wherein theplurality of candidate content items include some of the secondplurality of user-submitted content items and some of the thirdplurality of user-submitted content items.
 6. The method of claim 1,wherein the first plurality of user-submitted content items includes atleast two content types of the following set of content types: aphotograph, a video, an audio recording, a comment about a post, and apost.
 7. The method of claim 1, wherein the bundled event memory is avideo montage including the first plurality of user-submitted contentitems.
 8. A system comprising: a processing device; and a memory coupledto the processing device, the memory storing instructions which, whenexecuted by the processing device, cause the system to: receive, from afirst user device associated with a first user, a plurality of useridentifiers for a plurality of users of a networking system; identify afirst plurality of user-submitted content items available to the socialnetworking system that are related to an event involving at least oneuser of a plurality of users of the plurality of users, wherein theidentifying of the first plurality of user-submitted content itemsincludes: using the plurality of user identifiers to identify a secondplurality of user-submitted content items posted to the socialnetworking system by the plurality of users within a time range,analyzing the second plurality of user-submitted content items includingmetadata, content, and users identified within the content of each ofthe second plurality of user-submitted content items, generating aplurality of candidate content items, wherein the plurality of candidatecontent items is a subset of the second plurality of user-submittedcontent items, presenting to the first user device, the plurality ofcandidate content items wherein the plurality of candidate content itemsare displayed to the first user, receiving, from the first user device,a message indicating which of the plurality of candidate content itemsare to be included in the first plurality of user-submitted contentitems, and selecting two or more of the plurality of candidate contentitems as the first plurality of user-submitted content items based uponthe message received from the first user device; aggregate the firstplurality of user-submitted content items into a bundled event memory,wherein the bundled event memory is a set of one or more files capableof being presented to users on user devices; and transmit the bundledevent memory to at least some of a plurality of user devices to bepresented to at least some of the plurality of users, wherein theplurality of users use the plurality of user devices to communicate withthe social networking system.
 9. The system of claim 8, whereinexecuting the instructions further causes the system to: receive a firsttime value and a second time value from the first user device, whereinthe first time value indicates a beginning time of the event, andwherein the second time value indicates an ending time of the event. 10.The system of claim 9, wherein the time range indicates a period of timebetween the first time value and the second time value.
 11. The systemof claim 8, wherein the receiving the plurality of user identifierscomprises: identify a third plurality of user-submitted content itemsposted to the social networking system during the time range; andidentify the plurality of users based upon the first plurality ofuser-submitted content items.
 12. The system of claim 8, wherein theplurality of candidate content items include some of the secondplurality of user-submitted content items and some of the thirdplurality of user-submitted content items.
 13. The system of claim 8,wherein the first plurality of user-submitted content items includes atleast two content types of the following set of content types: aphotograph, a video, an audio recording, a comment about a post, and apost.
 14. The system of claim 8, wherein the bundled event memory is avideo montage including the first plurality of user-submitted contentitems.
 15. A non-transitory computer-readable storage medium thatprovides instructions that, when executed by a processing device, willcause the processing device to perform operations comprising: receiving,from a first user device associated with a first user, a plurality ofuser identifiers for a plurality of users of a networking system;identifying a first plurality of user-submitted content items posted tothe social networking system that are related to an event involving atleast one user of the plurality of users, wherein the identifying of thefirst plurality of user-submitted content items includes: using theplurality of user identifiers to identify a second plurality ofuser-submitted content items posted to the social networking system bythe plurality of users within a time range, analyzing the secondplurality of user-submitted content items including metadata, content,and users identified within the content of each of the second pluralityof user-submitted content items, generating a plurality of candidatecontent items, wherein the plurality of candidate content items is asubset of the second plurality of user-submitted content items,presenting to the first user device, the plurality of candidate contentitems wherein the plurality of candidate content items are displayed tothe first user, receiving, from the first user device, a messageindicating which of the plurality of candidate content items are to beincluded in the first plurality of user-submitted content items, andselecting two or more of the plurality of candidate content items as thefirst plurality of user-submitted content items based upon the messagereceived from the first user device; aggregating the first plurality ofuser-submitted content items into a bundled event memory, wherein thebundled event memory is a set of one or more files capable of beingpresented to users on user devices; and transmitting the bundled eventmemory to at least some of a plurality of user devices to be presentedto at least some of the plurality of users, wherein the plurality ofusers use the plurality of user devices to communicate with the socialnetworking system.
 16. The non-transitory computer-readable storagemedium of claim 15, wherein the identifying of the first plurality ofuser-submitted content items comprises: receiving a first time value anda second time value from the first user device, wherein the first timevalue indicates a beginning time of the event, and wherein the secondtime value indicates an ending time of the event.
 17. The non-transitorycomputer-readable storage medium of claim 16, wherein the time rangeindicates a period of time between the first time value and the secondtime value.
 18. The non-transitory computer-readable storage medium ofclaim 15, wherein receiving the plurality of user identifiers comprises:identifying a third plurality of user-submitted content items posted tothe social networking system during the time range; and identifying theplurality of users based upon the first plurality of user-submittedcontent items.
 19. The non-transitory computer-readable storage mediumof claim 18, wherein the plurality of candidate content items includesome of the second plurality of user-submitted content items and some ofthe third plurality of user-submitted content items.
 20. Thenon-transitory computer-readable storage medium of claim 15, wherein thefirst plurality of user-submitted content items includes at least twocontent types of the following set of content types: a photograph, avideo, an audio recording, a comment about a post, and a post.
 21. Thenon-transitory computer-readable storage medium of claim 15, wherein thebundled event memory is a video montage including the first plurality ofuser-submitted content items.